﻿Public Class E3_モデルデータ作成

    '...existing code...
    Private Sub T410_E判定()
        ' T160_全出荷E集計 の乱数を利用して T410_E判定 を作成する
        Dim dbPath As String = Tera計算DataPath & "\EIQ分析AI化\EIQ_AIモデル.accdb"
        Dim connStr As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={dbPath};"

        Try
            Using conn As New OleDbConnection(connStr)
                conn.Open()

                ' 既存テーブルがあれば削除（存在しない場合は無視）
                Try
                    Using cmdDrop As New OleDbCommand("DROP TABLE T410_E判定", conn)
                        cmdDrop.ExecuteNonQuery()
                    End Using
                Catch
                End Try

            ' 採用範囲の調整（既存仕様に合わせて1を引く場合がある）
            Dim 採用範囲 As Double = E採用判定値
            If 採用範囲 > 1 Then 採用範囲 -= 1

            ' T160_全出荷E集計 の 乱数 を用いて判定フィールドを作成
            Dim createSql As String = $"SELECT 順位, 乱数, IIF(乱数 <= {採用範囲}, 'Yes', 'No') AS 判定, 出荷先 AS 出荷先名 INTO T410_E判定 FROM T160_全出荷E集計"
            Using cmdCreate As New OleDbCommand(createSql, conn)
                cmdCreate.ExecuteNonQuery()
            End Using

            ' フラグを通知（後続処理で使用）
            Try
                E採用判定値Chk = 2
            Catch
                End Try
            End Using
        Catch ex As Exception
            ' 作成エラーは上位で扱うためここでは無視
        End Try
    End Sub

    Private Sub T410_I判定()
        ' T160_全出荷I集計 の乱数を利用して T410_I判定 を作成する
        Dim dbPath As String = Tera計算DataPath & "\EIQ分析AI化\EIQ_AIモデル.accdb"
        Dim connStr As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={dbPath};"

        Try
            Using conn As New OleDbConnection(connStr)
                conn.Open()

                ' 既存テーブルがあれば削除（存在しない場合は無視）
                Try
                    Using cmdDrop As New OleDbCommand("DROP TABLE T410_I判定", conn)
                        cmdDrop.ExecuteNonQuery()
                    End Using
                Catch
                End Try

            ' 採用範囲の調整
            Dim 採用範囲 As Double = I採用判定値
            If 採用範囲 > 1 Then 採用範囲 -= 1

            ' T160_全出荷I集計 の 乱数 を用いて判定フィールドを作成
            Dim createSql As String = $"SELECT 順位, 乱数, IIF(乱数 <= {採用範囲}, 'Yes', 'No') AS 判定, アイテム AS アイテム INTO T410_I判定 FROM T160_全出荷I集計"
            Using cmdCreate As New OleDbCommand(createSql, conn)
                cmdCreate.ExecuteNonQuery()
            End Using

            ' フラグを通知（後続処理で使用）
            Try
                I採用判定値Chk = 2
            Catch
                End Try
            End Using
        Catch ex As Exception
            ' 作成エラーは上位で扱うためここでは無視
        End Try
    End Sub

    '    Private Sub T410テーブル作成()
    '        ' E判定テーブル作成（出荷先名の取込も含む）
    '        T410テーブル作成1("T410_E判定", ベース出荷先数, seed1)
    '        ' I判定テーブル作成（アイテムの取込も含む）
    '        T410テーブル作成1("T410_I判定", ベースアイテム数, seed2)

    '    End Sub

End Class
